The present invention relates in general to the field of electronic devices such as utility meters. More particularly, the present invention relates to systems and methods for interfacing between utility meters, such as electric, gas, or water meters, and applications that use or request information or data from utility meters.
Many applications exist that use or request data or other information from electronic devices such as utility meters. These applications, typically software programs, perform such functions as retrieving energy usage data and computing billing information. Many different types and models of utility meters exist, and conventionally, an application has to be modified or a new application written to properly operate with its associated meter. This is disadvantageous because each time a new model is added to a system, the application must be modified or implemented and tested, which is labor intensive and time consuming.
For example, a billing application contains code and data structures to capture the desired data. Many types of meters use similar data structures for billing data, although it is not universally standardized. Thus, for a first type of utility meter, such as an ABB ALPHA meter, the application""s code and data structures are modified to operate properly with that meter, and for a second type of utility meter, such as an ANSI-compliant meter, the code and data structures are modified to operate properly with that meter. The two sets of code and data structures are not identical and cannot be used interchangeably or with other types of meters. Therefore, when another type of meter (e.g., a GE meter) is introduced into the system (or an existing meter has its firmware revised), the original code and data structures must be again modified in accordance with the meter with which it will be operating.
Thus, the overall system containing many types of meters is not fully integrated, as shown in the simplified diagram of FIG. 1. In FIG. 1, a first Application is specifically designed for Meter 1, and a second Application is specifically designed for Meter 2 (the network that exists between the application and the meter is not shown). Even though the two applications perform the same function (e.g., request billing data), they are separate and specific for the particular meter they are associated with. Therefore, if Meter 1 is a different type of meter than Meter 2, an application must be designed and implemented for each meter, even if the applications are to perform the same function. This leads to a large development and testing effort if the application is revised for each new type of meter, as well as the propagation of software bugs in similar applications for different meters. Otherwise, a new application must be developed for each new meter.
Put another way, presently, meter protocols provide data in a meter-centric format. This format must be translated before the data can be interpreted by non-protocol specific applications or other software.
It would be desirable to provide a translator/interface that overcomes the drawbacks of the prior art so that one data representation could be used with any meter, thus allowing a single application to work with a variety of meters. In this way, a utility network can be more integrated and more easily updated with additional types of meters.
The present invention is directed to an interface layer and method that permits applications, without modification, to operate with any type of meter. The interface comprises an abstraction layer and library or repository of descriptions specific to each meter type. The abstraction layer provides, the capability to communicate with any meter through a variety. of applications and via a number of communications media. Upon receiving an application request, the abstraction layer retrieves the description for the particular meter type from the repository and processes the request. In this manner, only one data representation is needed for applications to communicate with a wide variety of meters.
An application and the abstraction layer may communicate by means of any standard data description language, such as XML, or by traditional programming languages.
According to one embodiment within the scope of the present invention, a compiler can be implemented to compile the meter descriptions in the repository to form a data dictionary. The descriptions may also include behavior description that provides post-processing data analysis and virtual meter features.
According to another embodiment within the scope of the invention, a data manipulator can be provided that receives data from the abstraction layer, processes the data, and provides the processed data to the application.
The foregoing and other aspects of the present invention will become apparent from the following detailed description of the invention when considered in conjunction with the accompanying drawings.